package inits

import (
	"fmt"
	"github.com/redis/go-redis/v9"
	"srv/basic/config"
	"srv/basic/global"

	"sync"
)

var (
	once1 sync.Once
)

// InitRedis 单例初始化 Redis
func InitRedis() {
	once1.Do(func() {
		redisConfig := config.Config.Redis
		addr := fmt.Sprintf("%s:%s", redisConfig.Host, redisConfig.Port)

		global.Rdb = redis.NewClient(&redis.Options{
			Addr:     addr,
			Password: redisConfig.Password, // Redis 密码
			DB:       redisConfig.Database, // Redis 数据库
		})

		err := global.Rdb.Ping(global.Ctx).Err()
		if err != nil {
			panic(err)
		}

		fmt.Println("Redis连接成功")
	})
}
